﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using YouHP.Model;

namespace YouHP.IDAL
{
    public interface ISymptom
    {
        #region 症状增删改查基本操作
        bool AddSymptom(SymptomInfo info);
        bool UpdateSymptom(SymptomInfo info);
        bool DeleteSymptom(int[] itemIds);
        SymptomInfo GetSymptomInfo(int did);
        #endregion

        #region 症状列表以及搜索操作
        /*按条件检索症状列表*/
        List<SymptomInfo> GetSymptomList(int pageSize, int pageIndex, string condStr, out int count);
        List<SymptomInfo> GetSymptomListWithOrder(int pageSize, int pageIndex, string condStr, string sOrder,out int count);

       

        /*按条件检索症状列表（包括典型病人信息）*/
        List<SymptomInfo> GetSymptomListWithPatientInfo(int pageSize, int pageIndex, string condStr, out int count);

        /*按疾病条件检索症状列表（包括典型病人信息）*/
        List<SymptomInfo> GetSymptomListByDiseaseWithPatientInfo(int pageSize, int pageIndex, string condStr, out int count);

        /*按条件检索症状列表（包括典型疾病，典型病人信息）*/
        List<SymptomInfo> GetSymptomListWithDiseaseInfo(int pageSize, int pageIndex, string condStr, out int count);

        /*按疾病条件检索症状列表（包括典型疾病，典型病人信息）*/
        List<SymptomInfo> GetSymptomListByDiseaseWithDiseaseInfo(int pageSize, int pageIndex, string condStr, out int count);

        /*按照症状名称来检索症状*/
        List<SymptomInfo> GetSymptomByName(int pageSize, int pageIndex, string keyword, out int count);

        /*按照症状名称拼音字母来检索症状*/
        List<SymptomInfo> GetSymptomByPinYin(int pageSize, int pageIndex, string pinYin, out int count);

        /*按照症状类型来检索症状*/
        List<SymptomInfo> GetSymptomByType(int pageSize, int pageIndex, int symptomTypeId, out int count);
        /**/
        #endregion

        #region 症状类型基本操作
        bool AddSymptomType(SymptomTypeInfo info);
        bool UpdateSymptomType(SymptomTypeInfo info);
        bool DelSymptomType(int[] itemIds);
        SymptomTypeInfo GetSymptomTypeInfo(int id);
        #endregion

        #region 症状类型列表以及搜索操作
        List<SymptomTypeInfo> GetSymptomTypeList();
        List<SymptomTypeInfo> GetSymptomTypeList(int parentId);
        #endregion

        #region 症状统计
        List<SymptomStatDiseaseCount> GetSymptomStatDisease(int symId);
        List<SymptomStatSeverityCount> GetSymptomStatSeverity(int symId);
        #endregion
    }
}
